package one.stand.service;

import one.stand.model.ResultModel;
import one.stand.request.AddShareCountRequest;
import one.stand.request.CreateShareRecordRequest;
import one.stand.request.statistics.share.ShareTopNRequest;
import one.stand.request.statistics.share.ShareTypeDetailsStatisticsRequest;
import one.stand.request.statistics.share.SituationShareStatisticsRequest;
import one.stand.response.statistics.share.ShareTypeDetailsStatisticsRepository;
import one.stand.response.statistics.share.ShareUserTopNResponse;
import one.stand.response.statistics.share.SituationShareStatisticsResponse;

import java.util.List;

/**
 * 分享记录 service
 * Created by renz on 2019/10/23 23:36
 */
public interface ShareRecordService {
    /**
     * 添加分享记录
     *
     * @param request 创建分享记录请求
     * @return 添加成功返回true 否则返回false
     */
    ResultModel<Integer> addShareRecord(CreateShareRecordRequest request);

    ResultModel<SituationShareStatisticsResponse> situationStatistics(SituationShareStatisticsRequest request);

    ResultModel<List<ShareUserTopNResponse>> topN(ShareTopNRequest request);

    ResultModel<List<ShareTypeDetailsStatisticsRepository>> shareTypeDetailsStatistics(ShareTypeDetailsStatisticsRequest request);

    ResultModel<Boolean> addOpenShareCount(AddShareCountRequest request);
}
